package com.atguigu.myrule;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 不能和主启动类放置同一包下，避免被扫到
 * 需要在主启动类添加@RibbonClient，告知使用那个负载均衡算法
 *
 * @author Tu
 * @date 2023/4/12 11:12
 */
@Configuration
public class MySelfRule {

    @Bean
    public IRule myRule() {
        //return new RandomRule();//使用随机策略
        //return new RoundRobinRule();//使用轮询策略
        //return new AvailabilityFilteringRule();//会先过滤掉，跳闸，访问故障的服务~，对剩下的进行轮询~
        //return new RetryRule();//会先按照轮询获取服务~，如果服务获取失败，则会在指定的时间内进行，重试
        //new MyRondomRule(); //自定义规则也在这里配置
        return new RandomRule();
    }

}
